/**
 * @name 06_getNamespace
 */

import java

predicate isOgnlSink(Expr arg) {
  exists (Method m, MethodAccess ma
  | m.getName() = "compileAndExecute" and
    ma.getMethod() = m and
    arg = ma.getArgument(0))
}

/* We are only interested in methods that override ActionProxy::getNamespace. */
from Method m, Method n
where
  m.getName() = "getNamespace" and
  m.getDeclaringType().getName() = "ActionProxy" and
  n.overrides*(m)
select n
